<html>
    <head>
        <title>NPM包映射到 wwwroot</title>
    </head>
    <body>
        <script>
            /*
                        二、前端包资源映射 (node_modules 映射到 wwwroot/libs 文件夹的资源映射)

                                    使用NPM包和NPM/Yarn工具是客户端库的事实标准。

                                    PM/Yarn工具在Web项目的根文件夹中创建一个 "node_modules" 文件夹。

                                    下一个挑战是将所需资源（js、css、img…文件）从node_modules复制到wwwroot文件夹内的文件夹中，以使客户端/浏览器可以访问它。

                                    ABP CLI的 "abp install-libs"  命令将资源从node_modules复制到 wwwroot/libs文件夹。

                                    每个标准包（请参阅@ABP NPM包部分）为其自己的文件定义映射。因此，大多数时候，您只配置依赖项。

                                    启动模板已配置为开箱即用。本节将解释配置选项。

                                
                                1、资源映射定义文件    Resource Mapping Definition File 

                                            模块应定义一个名为 "abp.resourcemapping.js" 的JavaScript文件，其格式如下例所示：

                                                    module.exports = {
                                                            aliases: {
                                                                "@node_modules": "./node_modules",
                                                                "@libs": "./wwwroot/libs"
                                                            },
                                                            clean: [
                                                                "@libs",
                                                                "!@libs\**\foo.txt"   // 本行代码中 \应该是正斜杠
                                                            ],
                                                            mappings: {
                                                                
                                                            }
                                                    }

                                                ①、 "aliase" 节点部分定义了可以在映射路径中使用的标准别名（占位符）。@node_modules和@libs是必需的（标准包），您可以定义自己的别名以减少重复。
                                                
                                                ②、 "clean" 节点部分是在复制文件之前要清理的文件夹列表。

                                                        启用了全局匹配和否定，因此您可以微调要删除和保留的内容。
                                                        
                                                        上面的示例将清理./wwwroot/libs中的所有内容，但保留任何foo.txt文件。

                                                ③、 "mappings" 节点是要复制的文件/文件夹的映射列表。此示例不会复制任何资源本身，而是依赖于标准包。


                                                        下面显示了一个示例映射配置：

                                                            mappings: {
                                                                "@node_modules/bootstrap/dist/css/bootstrap.css": "@libs/bootstrap/css/",
                                                                "@node_modules/bootstrap/dist/js/bootstrap.bundle.js": "@libs/bootstrap/js/",
                                                                "@node_modules/bootstrap-datepicker/dist/locales/*.*": "@libs/bootstrap-datepicker/locales/",
                                                                "@node_modules/bootstrap-v4-rtl/dist/**\*": "@libs/bootstrap-v4-rtl/dist/"   // 此行反斜杠应为正斜杠
                                                            }


                                2、安装标准库  install-libs 

                                              确配置abp.resourcemapping.js文件后，您可以从命令行运行以下ABP CLI命令：
                                              
                                                  "abp install-libs"

                                            当您运行此命令时，所有包都会将自己的资源复制到wwwroot/libs文件夹中。

                                            仅当您更改pack. json文件中的依赖项时，才需要运行abp install-libs。

                                        



                    */
        </script>
    </body>
</html>